การติดตั้ง Ubuntu 20.04 บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วย PuTTy
ครั้งนี้ผมจะมาอธิบายเกี่ยวกับ การติดตั้ง Ubuntu บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วย PuTTy ด้วยขั้นตอนที่ละเอียดและเข้าใจง่าย
การสร้าง Key pair
ค้นหา?︎ EC2
» เลือกEC2
มาที่เมนูด้านซ้าย เลือกKey Pairs
คลิกCreate key pair
ใส่ชื่อที่ต้องการในช่อง Name เช่นtinnakorn-ubuntu
» คลิกCreate key pair
เมื่อสร้าง Key Pair เสร็จแล้ว ไฟล์.ppk
จะถูกดาวน์โหลดมาที่คอมพิวเตอร์และชื่อไฟล์จะเปลี่ยนไปตามที่เราได้ตั้งชื่อไว้โดยอัตโนมัติ
การติดตั้ง Ubuntu บน EC2
ค้นหา?︎ EC2
» เลือกEC2
มาที่เมนูด้านซ้าย เลือกInstances
คลิกLaunch instances
มาที่หัวข้อ Name and tags
» Name:tinnakorn-ubuntu
(ชื่ออะไรก็ได้)
» คลิกAdd additional tags
ถ้าได้หน้าตาแบบนี้ การเพิ่ม tag ก็ถือว่าเสร็จ
หัวข้อถัดมา Application and OS Images (Amazon Machine Image) นี้คือ Instance จะมีเซิร์ฟเวอร์ให้เลือกใช้มากมาย เช่น macOS, Red Hat, SUSE Linux, Ubuntu, Microsoft Windows, Debian เป็นต้น ซึ่งในบทความนี้จะใช้ Ubuntu ในการติดตั้ง
» เลือกUbuntu
ถัดมาหัวข้อ Instance type นี้คือ เราสามารถเลือก Type CPU Memory ที่จะนำไปใช้งานได้ตามความต้องการ ไม่ว่าเว็บไซต์จะมีขนาดเล็กหรือขนาดใหญ่ ก็สามารถเลือกขนาดความจุของ CPU Memory ได้ตามความเหมาะสม
ค้นหา?︎ t3a.nano
และเลือกt3a.nano
ก็จะได้สเปค Family:t3a | 2 vCPU | 0.5 GiB Memory
ตามนี้
ถัดมาหัวข้อ Key pair (login)
เลือก Key pair name - required ที่สร้างไว้เมื่อสักครู่นี้
ถัดมาหัวข้อ Network settings คลิกEdit
เลื่อนลงมาที่หัวข้อ Firewall (security groups)
จากนั้นเปลี่ยนชื่อ Security group name - required และ Description - required เป็นชื่ออะไรก็ได้ เช่นtinnakorn-ubuntu
ถัดมาหัวข้อ Inbound security groups rules นี้คือ การตั้งค่า My IP เพื่อจำกัดการเชื่อมต่อ SSH จากทุกตำแหน่ง ซึ่งในส่วนนี้จะทำให้สามารถเชื่อมต่อ SSH จาก My IP (ที่อยู่ IP ปัจจุบันของคุณ) ได้เท่านั้น และในกรณีที่ใช้ HTTP จะเป็นการแสดงผลหน้าเว็บไซต์นั่นเอง
» เปลี่ยน Source type ของ ssh ให้เป็น Source type:My IP
ถัดมาหัวข้อ Configure storage นี้คือ เราสามารถเพิ่ม Storage ในส่วนของ Size (GiB) ได้ โดยค่าเริ่มต้นจะเป็น 8 GB
ในตัวอย่างนี้จะใช้เป็นค่าเริ่มต้น ก็จะไม่ทำการตั้งค่าใดๆ
มาที่หัวข้อ Summary ด้านขวามือ คลิกLaunch instance
คลิกView all instances
หลังจากสร้าง Instance เสร็จแล้ว ให้สังเกตคำว่า Status Checks จะเห็นว่ามีสถานะเป็น? Initializing
คือ Instance กำลังทำการสตาร์ทระบบขึ้นมานั่นเอง
เมื่อ Instance เริ่มต้นระบบเสร็จเรียบร้อยแล้ว จะมีสถานะเป็น✅ 2/2 checks passed
Connect to EC2 by PuTTY
ขั้นตอนนี้จะลองทดสอบ Login เข้าใช้งาน Server Ubuntu
สำหรับผู้ใช้งานที่ยังไม่เคยใช้โปรแกรม PuTTy สามารถ Download PuTTy ได้ที่นี่เลย หรือ ถ้าผู้ใช้งานมี PuTTy อยู่แล้ว ให้ข้ามขั้นตอนการดาวน์โหลดโปรแกรมไปได้เลย
การดาวน์โหลดและติดตั้งโปรแกรมควรเลือกให้ตรงกับระบบ Windows ของเรา เช่น ถ้าระบบ Windows ของเราเป็น 64-bit ก็ให้เลือกดาวน์โหลดเป็น64-bit x86
เป็นต้น ซึ่งในปัจจุบันนี้ 32-bit ก็ไม่ค่อยมีแล้ว หรือ อาจจะพบได้ในคอมพิวเตอร์รุ่นเก่าที่มีขนาด RAM ต่ำกว่า 4 GB นั่นเอง ทั้งนี้ทั้งนั้นเพื่อความชัวร์ !แนะนำให้ตรวจสอบระบบ Windows ของเราก่อนดาวน์โหลดและติดตั้งโปรแกรมจะดีที่สุดครับ
เมื่อเรามี PuTTy แล้วให้เปิดโปรแกรม PuTTy เตรียมไว้
แล้วไปที่หน้า Instance ของเราเพื่อคัดลอก❐
Public IPv4 address มาใส่ใน Host Name ของ PuTTy
PuTTy Configuretion
กลับมาที่หน้า PuTTy แล้วตั้งค่าเพื่อทดสอบการ Login ไปยัง Server ตามขั้นตอนด้านล่างนี้
การตั้งค่า Basic options for your PuTTY session นี้คือ
① เลือกSession
② นำ Public IPv4 address ที่คัดลอกมาสักครู่นี้มาวางที่ Host Name
③ ใส่ชื่อที่ Saved Sessions เช่นtinnakorn-ubuntu
การตั้งค่า Options controlling the connection นี้คือ
» เลือกConnection
» ใส่ค่าการเชื่อมต่อที่ช่อง Seconds between keepalives (0 to turn off):60
การตั้งค่า Data to send to the server นี้คือ
» เลือกData
» ใส่ Auto-login username:ubuntu
(โปรดระวังในส่วนนี้ด้วย เนื่องจากว่าไม่ใช่ Amazon Linux 2)
การตั้งค่า Options controlling SSH authentication นี้คือ
» เลือกSSH
›Auth
» คลิกBrowse...
มาที่เก็บไฟล์ Key pair ของเรา เช่น This PC › Downloads
แล้วคลิกที่ Key pair ของเรา เช่นtinnakorn-ubuntu.ppk
ตามด้วยคลิกOpen
(หรือจะดับเบิ้ลคลิกที่ตัวไฟล์เลยก็ได้)
เมื่อ Browse ไฟล์.ppk
เสร็จแล้ว คลิกที่Session
เมื่อกลับมาที่หน้า Session แล้ว ทำการบันทึกการตั้งค่าดังนี้
① คลิกSave
② ชื่อที่เราใส่ไว้ก็จะไปอยู่ในช่องตามลูกศร ทีนี้ให้คลิกที่ชื่อเรา (สามารถดับเบิ้ลคลิกเพื่อ Login ได้เลย)
③ คลิกOpen
(ถ้าดับเบิ้ลคลิกจะไม่ต้องกด Open)
คลิกAccept
เมื่อเข้ามาแล้วจะได้หน้าตาแบบนี้โดยมี username "ubuntu" ก็คือเราสามารถ Login เข้ามายัง ubuntu ได้แล้ว
Using username "ubuntu". Authenticating with public key "tinnakorn-ubuntu" Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-1022-aws x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Tue Apr 26 07:06:38 UTC 2022 System load: 0.0 Processes: 103 Usage of /: 18.2% of 7.69GB Users logged in: 0 Memory usage: 42% IPv4 address for ens5: 172.31.27.40 Swap usage: 0% 1 update can be applied immediately. To see these additional updates run: apt list --upgradable The list of available updates is more than a week old. To check for new updates run: sudo apt update The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo ". See "man sudo_root" for details. ubuntu@ip-172-31-27-40:~$
ทีนี้มาทดสอบการเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root โดยการเปลี่ยน ubuntu ให้เป็น root กันครับ
รันคำสั่งsudo su -
นี้เพื่อเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root
ubuntu@ip-172-31-27-40:~$ sudo su - // รันคำสั่งนี้ root@ip-172-31-27-40:~#
รันคำสั่งapt update
นี้เพื่อรับรายการแพ็คเกจ
root@ip-172-31-27-40:~# apt update
รันคำสั่งapt upgrade
นี้เพื่อติดตั้งแพ็คเกจล่าสุด
root@ip-172-31-27-40:~# apt upgrade // รันคำสั่งนี้ ......omission (ละเว้นช่วงบนไว้)...... The following packages will be upgraded: alsa-ucm-conf apport base-files bash bind9-dnsutils bind9-host bind9-libs bolt bsdutils busybox-initramfs busybox-static cloud-init command-not-found cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-run fdisk fwupd fwupd-signed git git-man grub-common grub-pc grub-pc-bin grub2-common gzip initramfs-tools initramfs-tools-bin initramfs-tools-core klibc-utils landscape-common libarchive13 libblkid1 libc-bin libc6 libcryptsetup12 libdrm-common libdrm2 libexpat1 libfdisk1 libfribidi0 libfwupd2 libjcat1 libklibc liblzma5 libmount1 libnetplan0 libnss-systemd libnss3 libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0 libpython3.8 libpython3.8-minimal libpython3.8-stdlib libsasl2-2 libsasl2-modules libsasl2-modules-db libseccomp2 libsmartcols1 libssl1.1 libsystemd0 libudev1 libuuid1 libxml2 linux-aws linux-headers-aws linux-image-aws locales motd-news-config mount netplan.io open-vm-tools openssh-client openssh-server openssh-sftp-server openssl policykit-1 python-apt-common python3-apport python3-apt python3-commandnotfound python3-distupgrade python3-problem-report python3-twisted python3-twisted-bin python3-update-manager python3.8 python3.8-minimal rsync snapd sosreport systemd systemd-sysv systemd-timesyncd tar tcpdump tzdata ubuntu-advantage-tools ubuntu-release-upgrader-core udev update-manager-core update-notifier-common util-linux uuid-runtime vim vim-common vim-runtime vim-tiny xxd xz-utils zlib1g 113 upgraded, 13 newly installed, 0 to remove and 0 not upgraded. 68 standard security updates Need to get 136 MB of archives. After this operation, 237 MB of additional disk space will be used. Do you want to continue? [Y/n] y // พิมพ์ y + Enter เพื่อยืนยันการติดตั้งแพ็คเกจล่าสุด
สรุป
การสร้าง Instance ubuntu ขึ้นมาใช้งาน จำเป็นต้องใช้ Key Pair ในการสร้าง Instance เพราะว่า Key Pair จะเป็นส่วนสำคัญที่เปรียบเสมือนกุญแจที่ใช้สร้าง Instance นั่นเอง นอกจากนี้ ubuntu สามารถนำไปปรับใช้ให้เข้ากับทรัพยากรที่ต้องการได้ เช่น การนำ IP Instance ไปตั้งค่าในโปรแกรม PuTTy เพื่อทำการเชื่อมต่อไปยัง Server Linux บน EC2 และจะทำให้สามารถจัดการระบบ Server Linux ได้ตามต้องการ เช่น การ update server, upgrade server, ติดตั้งแอปพลิเคชัน และอื่นๆ เป็นต้น